// 导入axios
import axios from "axios"
// 导入传参token
import store from "@/store/index.js"
import JSONBig from 'json-bigint'// 引入最大安全整数包
// 在不同项目中有可能需要向不同的服务器发请求，既需要设置不同的基地址
// 通过axios.create来创建多个不同的axios的实例，以备不时之需
// 设置基地址
const instances = axios.create({
  baseURL: 'http://ttapi.research.itcast.cn',
  // baseURL: 'https://api-toutiao-web.itheima.net',
  // 解决最大安全整数  transformResponse:
  transformResponse: [function (data) {
    // 由于后端返回的数据有出现大数问题（文章编号）这里使用JSONbig处理一下
    try {
      return JSONBig.parse(data)
    } catch (err) {
      return data;
    }
  }]
});
// 通过请求拦截器，来添加token消息
// 在上面创建instance 上，添加一个请求拦截器
instances.interceptors.request.use(function (config) {
  // 在每一个ajax请求发出之前, 去vuex中取出token值
  // 如果有token,补充到请求 参数中去
  const token = store.state.tokenInfo.token
  if (token) {
    config.headers.Authorization = `Bearer ${token}`
  }
  return config
}, function (error) {
  return Promise.reject(error)
})

// 导出
export default instances
